package com.hrt.datasender.datacollect.serial.protocol;

import java.util.List;

import com.hrt.datasender.mq.model.SerialModel;

/**
 * 串口数据协议，可以实现诸如modbus RTU，modbus TCP的协议适配 <br>
 * 配合{@link com.hrt.datasender.datacollect.serial.SerialDataTransport} 试用，
 * SerialDataTransport在收到串口数据的时候，使用ISerialDataProtocol进行解帧处理
 * 
 * @author gislin
 *
 */
public interface ISerialDataProtocol {

    String getProtocolName();

    default String getProtocolId() {
        String className = getClass().getName();
        return className;
    };

    /**
     * 解析串口数据，该接口需要处理数据粘包拆包的问题，以及识别数据身份
     * 
     * @param data
     *            串口传过来的数据
     * @param datalength
     *            数据长度
     * @param comNum
     *            串口号
     * @return
     */
    List<SerialModel> decode(byte[] data, int datalength, String comNum);

}
